using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;

namespace QldtSdh.DAL.Models.Mapping
{
	public class LopHocPhan_HocVienMap : EntityTypeConfiguration<LopHocPhan_HocVien>
	{
		public LopHocPhan_HocVienMap()
		{
			// Khoá chính
			this.HasKey(t => new { t.MaLopHocPhanGUID, t.MaHocVien });

			// Các cột
			this.Property(t => t.MaLopHocPhanGUID)
				.IsRequired()
				.HasMaxLength(50);

			this.Property(t => t.MaHocVien)
				.IsRequired()
				.HasMaxLength(50);

			this.Property(t => t.MaHocPhanGUID_ThayThe)
				.HasMaxLength(50);

			// Ánh xạ Property của POCO vào Column của Table
			this.ToTable("LopHocPhan_HocVien");
			this.Property(t => t.MaLopHocPhanGUID).HasColumnName("MaLopHocPhanGUID");
			this.Property(t => t.MaHocVien).HasColumnName("MaHocVien");
			this.Property(t => t.HocThayThe).HasColumnName("HocThayThe");
			this.Property(t => t.MaHocPhanGUID_ThayThe).HasColumnName("MaHocPhanGUID_ThayThe");
			this.Property(t => t.DiemQTHT).HasColumnName("DiemQTHT");
			this.Property(t => t.LanHoc).HasColumnName("LanHoc");
			this.Property(t => t.GhiChu).HasColumnName("GhiChu");

			// Các quan hệ
			this.HasRequired(t => t.HocVien)
				.WithMany(t => t.LopHocPhan_HocVien)
				.HasForeignKey(d => d.MaHocVien);
			this.HasRequired(t => t.LopHocPhan)
				.WithMany(t => t.LopHocPhan_HocVien)
				.HasForeignKey(d => d.MaLopHocPhanGUID);

		}
	}
}
